<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>class Net::SMTP::Response - net-smtp: Ruby Standard Library Documentation</title>


<script src="../../js/navigation.js" defer></script>
<script src="../../js/search.js" defer></script>
<script src="../../js/search_index.js" defer></script>
<script src="../../js/searcher.js" defer></script>
<script src="../../js/darkfish.js" defer></script>

<script src="../../js/jquery-3.2.0.min.js"></script>

<script src="../../js/vue.min.js"></script>
<script src="../../js/js.cookie.min.js"></script>

<link href="../../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../../css/rdoc.css" rel="stylesheet">
<link href="../../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../../";
  var index_rel_prefix = "../../";
  var darkModeCsseHref = "../../css/rdoc-dm.css"
  var defaultModeCssHref = "../../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="class">
  <!-- this is class.html -->

  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->

  <div class='wrapper hdiv'>

    


    <nav id='vapp' role="navigation">
    <div id="project-navigation">
      <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../../table_of_contents.html#pages">Pages</a>
    <a href="../../table_of_contents.html#classes">Classes</a>
    <a href="../../table_of_contents.html#methods">Methods</a>
  </div>
</div>

      <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

    </div>


    

    <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>
    <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
      <div id="class-metadata">
        
        
<div id="parent-class-section" class="nav-section">
  <h3>Parent</h3>

  <p class="link">Object
</div>

        
        
        
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <li ><a href="#method-c-new">::new</a>
    <li ><a href="#method-c-parse">::parse</a>
    <li ><a href="#method-i-capabilities">#capabilities</a>
    <li ><a href="#method-i-continue-3F">#continue?</a>
    <li ><a href="#method-i-cram_md5_challenge">#cram_md5_challenge</a>
    <li ><a href="#method-i-exception_class">#exception_class</a>
    <li ><a href="#method-i-message">#message</a>
    <li ><a href="#method-i-status_type_char">#status_type_char</a>
    <li ><a href="#method-i-success-3F">#success?</a>
  </ul>
</div>

      </div>
     </div>
    </nav>


    <div id='extraz'><div class='adzbox-index'  >
      
     </div>         
    </div>

    <main role="main" aria-labelledby="class-Net::SMTP::Response">
    <h1 id="class-Net::SMTP::Response" class="class">
      class Net::SMTP::Response
    </h1>

    <section class="description">
    
<p>This class represents a response received by the <a href="../SMTP.html"><code>SMTP</code></a> server. Instances of this class are created by the <a href="../SMTP.html"><code>SMTP</code></a> class; they should not be directly created by the user. For more information on <a href="../SMTP.html"><code>SMTP</code></a> responses, view <a href="http://tools.ietf.org/html/rfc5321#section-4.2">Section 4.2 of RFC 5321</a></p>

    </section>

      <section id="5Buntitled-5D" class="documentation-section">



        <section class="attribute-method-details" class="method-section">
        <header>
        <h3>Attributes</h3>
        </header>

          <div id="attribute-i-status" class="method-detail">
            <div class="method-heading attribute-method-heading">
              <span class="method-name">status</span><span
                class="attribute-access-type">[R]</span>
            </div>

            <div class="method-description">
              <p>The three digit reply code of the <a href="../SMTP.html"><code>SMTP</code></a> response</p>
              </div>
            </div>
          <div id="attribute-i-string" class="method-detail">
            <div class="method-heading attribute-method-heading">
              <span class="method-name">string</span><span
                class="attribute-access-type">[R]</span>
            </div>

            <div class="method-description">
              <p>The human readable reply text of the <a href="../SMTP.html"><code>SMTP</code></a> response</p>
              </div>
            </div>
            </section>


                <section id="public-class-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Class Methods</h3>
                </header>

                  <div id="method-c-new" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">new</span><span
                                class="method-args">(status, string)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Creates a new instance of the <a href="Response.html"><code>Response</code></a> class and sets the status and string attributes</p>

                              <div class="method-source-code" id="new-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1111</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">status</span>, <span class="ruby-identifier">string</span>)
  <span class="ruby-ivar">@status</span> = <span class="ruby-identifier">status</span>
  <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">string</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-c-parse" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">parse</span><span
                                class="method-args">(str)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Parses the received response and separates the reply code and the human readable reply text</p>

                              <div class="method-source-code" id="parse-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1105</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">parse</span>(<span class="ruby-identifier">str</span>)
  <span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">3</span>], <span class="ruby-identifier">str</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Instance Methods</h3>
                </header>

                  <div id="method-i-capabilities" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">capabilities</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Returns a hash of the human readable reply text in the response if it is multiple lines. It does not return the first line. The key of the hash is the first word the value of the hash is an array with each word thereafter being a value in the array</p>

                              <div class="method-source-code" id="capabilities-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1154</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">capabilities</span>
  <span class="ruby-keyword">return</span> {} <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@string</span>[<span class="ruby-value">3</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">&#39;-&#39;</span>
  <span class="ruby-identifier">h</span> = {}
  <span class="ruby-ivar">@string</span>.<span class="ruby-identifier">lines</span>.<span class="ruby-identifier">drop</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
    <span class="ruby-identifier">k</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">v</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">4</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39; &#39;</span>)
    <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
  <span class="ruby-keyword">end</span>
  <span class="ruby-identifier">h</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-continue-3F" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">continue?</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Determines whether the response received was a Positive Intermediate reply (3xx reply code)</p>

                              <div class="method-source-code" id="continue-3F-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1135</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">continue?</span>
  <span class="ruby-identifier">status_type_char</span>() <span class="ruby-operator">==</span> <span class="ruby-string">&#39;3&#39;</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-cram_md5_challenge" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">cram_md5_challenge</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Creates a CRAM-MD5 challenge. You can view more information on CRAM-MD5 on Wikipedia: <a href="https://en.wikipedia.org/wiki/CRAM-MD5">en.wikipedia.org/wiki/CRAM-MD5</a></p>

                              <div class="method-source-code" id="cram_md5_challenge-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1146</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cram_md5_challenge</span>
  <span class="ruby-ivar">@string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/ /</span>)[<span class="ruby-value">1</span>].<span class="ruby-identifier">unpack1</span>(<span class="ruby-string">&#39;m&#39;</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-exception_class" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">exception_class</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Determines whether there was an error and raises the appropriate error based on the reply code of the response</p>

                              <div class="method-source-code" id="exception_class-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1166</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">exception_class</span>
  <span class="ruby-keyword">case</span> <span class="ruby-ivar">@status</span>
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A4/</span>  <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPServerBusy</span>
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A50/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPSyntaxError</span>
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A53/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPAuthenticationError</span>
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A5/</span>  <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPFatalError</span>
  <span class="ruby-keyword">else</span>             <span class="ruby-constant">SMTPUnknownError</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-message" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">message</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>The first line of the human readable reply text</p>

                              <div class="method-source-code" id="message-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1140</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">message</span>
  <span class="ruby-ivar">@string</span>.<span class="ruby-identifier">lines</span>.<span class="ruby-identifier">first</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-status_type_char" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">status_type_char</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Takes the first digit of the reply code to determine the status type</p>

                              <div class="method-source-code" id="status_type_char-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1123</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">status_type_char</span>
  <span class="ruby-ivar">@status</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>]
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-success-3F" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">success?</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Determines whether the response received was a Positive Completion reply (2xx reply code)</p>

                              <div class="method-source-code" id="success-3F-source">
            <pre><span class="ruby-comment"># File net-smtp-0.3.3/lib/net/smtp.rb, line 1129</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">success?</span>
  <span class="ruby-identifier">status_type_char</span>() <span class="ruby-operator">==</span> <span class="ruby-string">&#39;2&#39;</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

              </section>
              </main>



            </div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is a service of <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>, purveyors of fine <a href='https://jamesbritt.bandcamp.com/'>dance noise</a></p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

